/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Client;

import Server.MailServer;
/**
 * @author VICTORIA
 * La clase MailClient es la encargada de la comunicacion/iteracion con el usuario
 * Su estructura esta dada por cuadro metodos base:
 * 1. El constructor
 * 2. El checkMessages
 * 3. readNextMessage
 * 4. El sendMessage
 */
public class MailClient {
        private String Nombre; //variable de instancia para guardar el valor de un objeto de otra clase
        private MailServer server; //instancia de la Clase MailServer
        
    /**
     *Constructor sin parametros de entrada
     */
    public MailClient(){
     
    }   
    /**
     *Constructor parametrizado 
     * @param Name
     * @param server
     */
    public MailClient(String Name,MailServer server) {
        Nombre=Name;
        this.server=server;
    }
 
    /**
     *Funcion checkMessages que devuelve la cantidad de mensajes que tiene un usuario en el servidor que fue logueado 
     * @return cantidad
     */
    public int checkMessages(){
     int cantidad=0;
     cantidad=server.getMessagesWaiting(Nombre); 
     return cantidad;
   }
    
    /**
     *Funcion que devuelve el Mensage siguiente de un usuario 
     * @return Message
     */
    public Message readNextMessage(){
     return server.getNextMessage(Nombre);     
    }

    /**
     *Procedimiento que envia un mensaje al servidor, utilizando procedimientos de las clases:
     * Message y MailServer
     * @param destinatario
     * @param asunto
     * @param contenido
     */
    public void sendMessage(String destinatario,String asunto,String contenido){
      Message message = new Message(Nombre, destinatario, asunto, contenido);
      server.post(message);
    }
}
